Ç∑Ç◊ǃÇÃÉAÉvÉäÉPÅ[ÉVÉáÉìÇ™ìØÇ∂Ç≈džÇÈÇΔÇÕǩǨÇÁǻǢ
ÉNÉâÉVÉbÉNÇ» Macintosh ÉAÉvÉäÉPÅ[ÉVÉáÉìÇèëǢǃǢÇÈèÍçáÇÕÅAFindFolder ÇégǡǃïKóvÇ»ÉtÉHÉãÉ_ÇåüèoÇ∑ÇÈDZÇΔÇΔÇÕï Ç…ÅAÇ≥ÇÁDžǪÇÍÇÁÇÃÉtÉHÉãÉ_Ç÷ÇÃèëÇ´çûÇ›ÉAÉNÉZÉXå†ÇÉ`ÉFÉbÉNǵNjÇ∑ÅBDZDZNjÇ≈ÇÕí èÌí ÇËÇÃçÏãΔÇ≈Ç∑ÅBÉ}ÉãÉ`ÉÜÅ[ÉUã@î\ÇÕÉtÉHÉãÉ_ÇÉäÉ_ÉCÉåÉNÉgǵÅADZÇÃèàóùÇÕǩǻÇËìßâflìIÇ…é¿çsÇ≥ÇÍÇ‹Ç∑ÅBDZÇÍÇÁÇÃÉAÉvÉäÉPÅ[ÉVÉáÉìÇÕåàǵǃÉçÉOÉCÉìÇÅuå©ÇÈÅvDZÇΔÇÕÇ»Ç≠ÅAÉçÉOÉAÉEÉgÇ™çsÇÌÇÍÇÈÇΩÇ—Ç… 'quit' AppleEvent ÇéÛêMǵNjÇ∑ÅB
ǵǩǵÅAÉoÉbÉNÉOÉâÉEÉìÉhÉAÉvÉäÉPÅ[ÉVÉáÉìÅiÉ^ÉCÉv 'appe'ÅjÇ‚ÅAǪÇÃëºÇÃèIóπǵǻǢÉvÉçÉZÉXÇèëǢǃǢÇÈèÍçáÇÕÅAÉçÉOÉCÉì/ÉçÉOÉAÉEÉgǙǢǬçsÇÌÇÍÇÈÇ©Çê≥ǵÇ≠îFéØÇ∑ÇÈïKóvǙdžÇËÇ‹Ç∑ÅB
à»â∫Ç…é¶Ç∑ API ÇÕÇ∑Ç◊ǃ Folders.h Ç…ä‹Ç‹ÇÍǃǢNjÇ∑ÅB
éüÇÃí ímÇìoò^Ç∑ÇÈDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅB
kFolderManagerNotificationMessageUserLogIn
ÉÜÅ[ÉUÇ™ÉçÉOÉCÉìǵÇΩÇΔÇ´Ç…ëóêMÇ≥ÇÍÇ‹Ç∑ÅBDZÇÃÉÅÉbÉZÅ[ÉWÇ™éÛêMÇ≥ÇÍÇÈÇΔÅAFindFolder () ÇÕÉÜÅ[ÉUÇ™ÉçÉOÉAÉEÉgÇ∑ÇÈÇ‹Ç≈ÉÜÅ[ÉUÇÃÉäÉ_ÉCÉåÉNÉgÉtÉHÉãÉ_Çà vRefNum ÇΔ dirID Çï‘ǵNjÇ∑ÅiëOèqÇÃÉäÉ_ÉCÉåÉNÉgÉtÉHÉãÉ_ÇÃÉäÉXÉgÇéQèΔǵǃÇ≠ÇæÇ≥Ç¢ÅjÅBDZÇÃÉÅÉbÉZÅ[ÉWÇÕÅAêVǵǢÉÜÅ[ÉUÇÃèâä˙ê›íËÇÉçÅ[ÉhÇ∑ÇÈÇΩÇflÇ…égópÇ≈Ç´Ç‹Ç∑ÅB
kFolderManagerNotificationMessagePreUserLogIn
FindFolder () ÇÉÜÅ[ÉUÇÃÉtÉHÉãÉ_Ç…ÉäÉ_ÉCÉåÉNÉgÇ∑ÇÈíºëOÇ…ëóêMÇ≥ÇÍÇ‹Ç∑ÅBDZÇÃí ímÇéÛêMǵÇΩÇΔÇ´Ç… FindFolder () ÇåƒÇ—èoÇ∑ÇΔÅAÉVÉXÉeÉÄÉtÉHÉãÉ_Çà vRefNum ÇΔ dirID Ç™ï‘Ç≥ÇÍÇ‹Ç∑ÅBDZÇÃÉÅÉbÉZÅ[ÉWÇÕÅAFindFolder () Ç™ÉäÉ_ÉCÉåÉNÉgÇ≥ÇÍÇÈëOÇ…èäóLé“ÇÃèâä˙ê›íËÇçXêVÇ∑ÇÈÇΩÇflÇ…égópÇ≈Ç´Ç‹Ç∑ÅB
kFolderManagerNotificationMessageUserLogOut
ÉÜÅ[ÉUÇ™ÉçÉOÉAÉEÉgǵÇΩÇΔÇ´Ç…ëóêMÇ≥ÇÍÇ‹Ç∑ÅBDZÇÍÇÕÅAFindFolder () Ç™ÉÜÅ[ÉUÇÃÉtÉHÉãÉ_Çï‘Ç∑ç≈å„ÇÃÉ`ÉÉÉìÉXÇ≈Ç∑ÅBDZÇÃí ímà»ç~ÅAFindFolder () ÇÕÉVÉXÉeÉÄÉtÉHÉãÉ_Çà vRefNum ÇΔ dirID Çï‘Ç∑DZÇΔÇ…Ç»ÇËÇ‹Ç∑ÅBDZÇÃÉÅÉbÉZÅ[ÉWÇÕÅAÉçÉOÉAÉEÉgÇçsǧä‘Ç…ÉÜÅ[ÉUÇÃèâä˙ê›íËÉtÉ@ÉCÉãÇçXêVÇ∑ÇÈÇΩÇflÇ…égópÇ≈Ç´Ç‹Ç∑ÅB
kFolderManagerNotificationMessagePostUserLogOut
FindFolder () Ç™ÉVÉXÉeÉÄÉtÉHÉãÉ_Çà vRefNum ÇΔ dirID Çï‘Ç∑ÇÊǧDžǻǡÇΩíºå„Ç…ëóêMÇ≥ÇÍÇ‹Ç∑ÅBDZÇÃÉÅÉbÉZÅ[ÉWÇÕÅAèäóLé“ÇÃèâä˙ê›íËÇÉçÅ[ÉhÇ∑ÇÈÇΩÇflÇ…égópÇ≈Ç´Ç‹Ç∑ÅB
éüÇà API ÇégópÇ∑ÇÈÇΔÅAí ímÇÃìoò^ÇΔǪÇÃâèúÇçsǧDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅB
OSErr FolderManagerRegisterNotificationProc (
FolderManagerNotificationUPP notifyProc,
void * refCon,
UInt32 options);
OSErr FolderManagerUnregisterNotificationProc (
FolderManagerNotificationUPP notifyProc,
void * refCon);
FolderManagerRegisterNotificationProc () ÇégópÇ∑ÇÈÇΔÅAFolder Manager Ç…ÇÊÇËí ímä÷êîÇìoò^Ç∑ÇÈDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅBnotifyProc ÉpÉâÉÅÅ[É^ÇÕÅAí ímä÷êîÇ÷ÇÃÉ|ÉCÉìÉ^Ç‹ÇΩÇÕ UPP Ç≈Ç∑ÅBrefCon ÉpÉâÉÅÅ[É^ÇÕÉfÉxÉçÉbÉpÇ™ìΔé©Ç…égópÇ≈Ç´Ç‹Ç∑ÅBǬNjÇËÅADZÇÃílÇÕí ímä÷êîÇåƒÇ—èoÇ∑ÇΩÇ—Ç…ÅAǪÇÃí ímä÷êîÇ…ìnÇ≥ÇÍÇ‹Ç∑ÅBDZÇÃÉIÉvÉVÉáÉìÉpÉâÉÅÅ[É^ÇÕìoò^ÉIÉvÉVÉáÉìÇéwíËǵNjÇ∑ÅB
åªç›ÇÕÅAkDoNotRemoveWhenCurrentApplicationQuitsBit íËêîÇ…ÇÊǡǃÇΩÇæàÍǬÇÃÉIÉvÉVÉáÉìÇæÇØÇéwíËÇ≈Ç´Ç‹Ç∑ÅBDZÇÃÉrÉbÉgÇÉZÉbÉgÇ∑ÇÈÇΔÅAåªç›ÇÃÉAÉvÉäÉPÅ[ÉVÉáÉìÇ™èIóπÇ∑ÇÈÇΔǴDžLJÅAí ímä÷êîÇçÌèúǵǻǢÇÊǧDž Folder Manager Ç…éwé¶Ç≈Ç´Ç‹Ç∑ÅBDZÇÃÉrÉbÉgÇÉZÉbÉgǵǻǢÇΔÅAdžÇÈÉAÉvÉäÉPÅ[ÉVÉáÉìÇÃÉRÉìÉeÉLÉXÉgì‡Ç≈ìoò^Ç≥ÇÍǃǢÇÈí ímä÷êîÇÕÅAǪÇÃÉAÉvÉäÉPÅ[ÉVÉáÉìÇ™èIóπÇ∑ÇÈÇΔÇ´Ç…é©ìÆìIÇ…çÌèúÇ≥ÇÍǃǵNjǢNjÇ∑ÅBÉVÉXÉeÉÄãNìÆéûÇ…í ímÇìoò^Ç∑ÇÈÉvÉçÉOÉâÉÄÇ≈ÇÕÅAïKÇ∏DZÇÃÉrÉbÉgÇÉZÉbÉgǵǃÇ≠ÇæÇ≥Ç¢ÅBÉAÉvÉäÉPÅ[ÉVÉáÉìÇÕí èÌ Folder Manager ÇÃí ímÇéÛêMÇ∑ÇÈïKóvǙǻǢÇΩÇflÅAÇΩǢǃǢÇÃèÍçáÇÕDZÇÃÉrÉbÉgÇÉZÉbÉgǵǃǮÇ≠ïKóvǙdžÇËÇ‹Ç∑ÅB
FolderManagerUnregisterNotificationProc () ÇégópÇ∑ÇÈÇΔÅAí ímä÷êîÇ Folder Manager ÇÃÉLÉÖÅ[Ç©ÇÁçÌèúÇ∑ÇÈDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅBnotifyProc ÉpÉâÉÅÅ[É^ÇÕÅAFolderManagerRegisterNotificationProc () ä÷êîÇ…ìnǵÇΩí ímä÷êîÇ÷ÇÃÉ|ÉCÉìÉ^Ç‹ÇΩÇÕ UPP Ç≈Ç∑ÅBrefCon ÉpÉâÉÅÅ[É^ÇÕÅAFolderManagerRegisterNotificationProc () ä÷êîÇ…ìnǵÇΩ refCon ÉpÉâÉÅÅ[É^ÇΔìØÇ∂ílÇ≈Ç»ÇØÇÍnjǻÇËÇ‹ÇπÇÒÅB
í ímä÷êîÇÃÉvÉçÉgÉ^ÉCÉvÇÕéüÇÃÇÊǧDžǻÇËÇ‹Ç∑ÅB
typedef OSStatus (*FolderManagerNotificationProcPtr) (
OSType message,
void * arg,
void * userRefCon);
DZÇÃä÷êîÇÕÅAÇ∑Ç◊ǃÇà Folder Manager í ímÇ…ëŒÇµÇƒåƒÇ—èoÇ≥ÇÍÇ‹Ç∑ÅBmessage ÉpÉâÉÅÅ[É^Ç…ÇÕí ímÇÃÉ^ÉCÉvÅiÉÜÅ[ÉUÉçÉOÉCÉìÅAÉÜÅ[ÉUÉçÉOÉAÉEÉgǻǫÅjÇ™ä‹Ç‹ÇÍÅAarg ÉpÉâÉÅÅ[É^Ç…ÇÕí«â¡èÓïÒÅiLJǵdžÇÍÇŒÅjÇ÷ÇÃÉ|ÉCÉìÉ^Ç™ä‹Ç‹ÇÍÇÈDZÇΔÇ…Ç»ÇËÇ‹Ç∑ÅBÇ‹ÇΩÅAuserRefCon ÉpÉâÉÅÅ[É^ÇÕÅAä÷êîÇ™ìoò^Ç≥ÇÍÇΩÇΔÇ´Ç…íÒãüÇ≥ÇÍÇÈílÇ≈Ç∑ÅBuserRefCon ÇÕìΔé©Ç…égópÇ≈Ç´ÅAïKóvÇ…âûÇ∂ǃîCà”ÇÃílÅiÉOÉçÅ[ÉoÉãÇ‹ÇΩÇÕǪÇÃëºÇÃÉXÉeÅ[É^ÉXèÓïÒÇ÷ÇÃÉ|ÉCÉìÉ^ǻǫÅjÇéwíËÇ≈Ç´Ç‹Ç∑ÅB
ëOèqÇà 4 ǬÇÃí ímÇÃèÍçáÅAarg ÇÕ FindFolderUserRedirectionGlobals ç\ë¢ëÃÇ÷ÇÃÉ|ÉCÉìÉ^Ç…Ç»ÇËÇ‹Ç∑ÅB
struct FindFolderUserRedirectionGlobals {
UInt32 version;
UInt32 flags;
Str31 userName;
short userNameScript;
short currentUserFolderVRefNum;
long currentUserFolderDirID;
short remoteUserFolderVRefNum;
long remoteUserFolderDirID;
};
|
Ç≥ÇÁÇ…ÅAç≈èâÇà 4 ǬÇÃí ímÇΔÇÕNjǡÇΩÇ≠àŸÇ»ÇÈëÊ 5 ÇÃí ímÇ™ë∂ç›ÇµÅADZÇÍÇÕàÍïîÇÃÉfÉxÉçÉbÉpÇ…ÇÃÇ›égópÇ≥ÇÍÇÈDZÇΔÇ…Ç»ÇËÇ‹Ç∑ÅB
kFolderManagerNotificationDiscardCachedData
Folder Manager ÇÃÉLÉÉÉbÉVÉÖÇ™ÉtÉâÉbÉVÉÖÇ≥ÇÍÇΩÇΔÇ´Ç…ÉTÅ[ÉhÉpÅ[ÉeÉBÇÃÉ\ÉtÉgÉEÉFÉAÇ…ÇÊǡǃëóêMÇ≥ÇÍÇ‹Ç∑ÅB
DZÇÃèÍçáÅAarg ÇÕíËã`Ç≥ÇÍǃǢNjÇπÇÒÅB
|